package com.deco.service.sys;

import java.sql.Timestamp;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.deco.domain.vo.sys.CmsArticleTypeVo;
import com.deco.domain.vo.sys.CmsArticleVo;
import com.deco.logic.sys.CmsArticleLogic;
import com.deco.logic.sys.CmsArticleTypeLogic;
import com.free.common.vo.PageResponseVo;
import com.free.common.vo.PageSearchVo;
import com.free.common.vo.ResultModel;

@Service
public class CmsArticleService {
	   /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    
    @Autowired
    private CmsArticleLogic cmsArticleLogic;
    
    
    @Autowired
    private CmsArticleTypeLogic cmsArticleTypeLogic;
    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    
    public CmsArticleVo getCmsArticle(int id){
    	return cmsArticleLogic.getCmsArticle(id);
    }
    
    public ResultModel save(CmsArticleVo cmsArticleVo){
        Timestamp nowTime = new Timestamp(System.currentTimeMillis());
    	if(cmsArticleVo.getId() == 0L){
    		cmsArticleVo.setCreateTime(nowTime);
    		cmsArticleVo.setUpdateTime(nowTime);
    		cmsArticleLogic.create(cmsArticleVo);
    	}
    	else{
    		cmsArticleVo.setUpdateTime(nowTime);
    		cmsArticleLogic.update(cmsArticleVo);
    	}
    	return ResultModel.success();
    }

	public ResultModel delete(int id) {
		cmsArticleLogic.delete(id);
	  	return ResultModel.success();
	}

	public PageResponseVo<CmsArticleVo> pageInfo(
			PageSearchVo<CmsArticleVo> condition) {
		PageResponseVo<CmsArticleVo>  pageResponse = cmsArticleLogic.getPageInfo(condition);
		List<CmsArticleVo> articleList = pageResponse.getList();
		if(articleList != null && articleList.size() > 0){
			List<CmsArticleTypeVo> cmsArticleTypeList = cmsArticleTypeLogic.getAll();
			if(cmsArticleTypeList != null && cmsArticleTypeList.size() > 0){
				for(CmsArticleVo cmsArticleVo : articleList){
					for(CmsArticleTypeVo cmsArticleTypeVo : cmsArticleTypeList){
						if(cmsArticleTypeVo.getId() == cmsArticleVo.getTypeId()){
							cmsArticleVo.setTypeFmt(cmsArticleTypeVo.getName());
						}
					}
				}
			}
		}
		return cmsArticleLogic.getPageInfo(condition);
	}

	public ResultModel batchDelete(Integer[] ids) {
		if(ids == null || ids.length == 0){
    		return ResultModel.success();
		}
    	int res = cmsArticleLogic.batchDelete(ids);
    	if(res > 0){
    		return ResultModel.success();
		}
		return ResultModel.failure();
	}

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/

}
